package com.beamfield.dao.sys;

import com.beamfield.model.AttendInfo;
import com.beamfield.model.AttendInfoExample;
import com.beamfield.modelVo.AttendMonthVo;

import java.util.List;

import com.beamfield.modelVo.BatchAttendMonthVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

@Component
public interface AttendInfoMapper {
    int deleteByPrimaryKey(Long attend_id);

    int insert(AttendInfo record);

    int insertSelective(AttendInfo record);

    List<AttendInfo> selectByExample(AttendInfoExample example);

    AttendInfo selectByPrimaryKey(Long attend_id);

    int updateByPrimaryKeySelective(AttendInfo record);

    int updateByPrimaryKey(AttendInfo record);

	Integer selectHaveCount(@Param("time")String sqlTime, @Param("name")String name,@Param("minute")String minute, @Param("beamId") long beamId);

	Integer selectNoCount(@Param("time")String sqlTime, @Param("name")String name,@Param("minute")String minute, @Param("beamId") long beamId);

	Integer selectNoAttend(@Param("time")String sqlTime,@Param("name")String name,@Param("day")int day, @Param("beamId") long beamId);

	Integer getManagerInfoAttendDetailCount(@Param("name")String name,@Param("year")String year,@Param("beamId") long beamId);

	List<AttendMonthVo> getManagerInfoAttendDetailList(
			@Param("name")String name,
			@Param("minute")String minute,
			@Param("time")String time,
			@Param("beamId")long beamId);


	List<AttendMonthVo> getManagerInfoAttendMonthList(
			@Param("offset")Integer offset, 
			@Param("limit")Integer limit, 
			@Param("name")String name,
			@Param("minute")String minute, 
			@Param("year")String year,
			@Param("beamId")long beamId);

	Integer countAttendByDay(@Param("day")String day,@Param("beamId")Long beamId);
}